@怪人
2年前 提问
1个回答

MySQL 加固方法有什么

Ann
2年前
  • 修改DBA登录密码在shell环境下执行
mysqladmin -u root password
  • 连续输入两次新密码非首次修改
mysqladmin -u root password -p原密码
  • 连续输入两次新密码在mysql下执行t-sql语句
update user set password=password(‘密码') where user='root'; 
flush privileges; 
  • 删除测试库
show databases;
drop?database?test; 
  • 删除非root用户
use mysql; 
 delete from user where not (user='root') ; 
  • 删除密码为空的root用户
delete from user where user='root' and password=’’;
flush privileges; 
  • 变更DBA用户名
use mysql;
update user set user=”nicai " where user="root"; 
flush privileges; 
  • 在账户管理时使用加密算法
use mysql;
insert into users values (1,password(123.com),'test'); 
  • 更改mysql启动用户修改my.cnf文件
vim /etc/my.cnf
加入如下内容
[mysqld]
user=mysql
  • 限制远程连接数
修改my.cnf文件,去掉注释符号vi  /etc/my.cnf加入如下内容
[mysqld]
max_connections = 5
max_user_connections=2
或者限制某个用户,在mysql中执行
GRANT test  ON *.* TO testdb@localhost MAX_USER_CONNECTIONS 2;
  • 关闭远程管理数据库
修改my.cnf文件,去掉注释符号
vi  /etc/my.cnf
修改如下内容
#skip-networking
           ↓
skip-networking
  • 清理mysql命令历史
注意清理家目录中的.mysql_history
ln -s /dev/null  /root/.mysql_history
禁止使用明文模式登陆mysql
mysql  -u root -p123.com
应使用隐藏密码方式
mysql  -u root -p
  • 禁止将表导出到文件
在mysql中修改用户的文件权限
update user set File_priv=N’ where user=‘用户名'; 
检查配置文件是否存在不合理信息
grep  secure_file_priv  /etc/my.cnf
secure_file_priv= xxx路径
*********导出的测试命令************
select * from mysql.user into outfile 'test1.txt' fields terminated by ',';
  • 日常备份数据库
mysqldump --user=root --all-databases --flush-privileges --lock-all-tables  --master-data=1 --flush-logs --triggers --routines --events  --hex-blob > 备份路径/文件名时间戳.sql